// https://leetcode.cn/problems/1-bit-and-2-bit-characters/
// Created by ade on 2022/8/15.
// 有两种特殊字符：
//
// 第一种字符可以用一比特 0 表示
// 第二种字符可以用两比特（10 或 11）表示
// 给你一个以 0 结尾的二进制数组 bits ，如果最后一个字符必须是一个一比特字符，则返回 true 。
// 1,1,0  预期是true, 目前是false
#include <iostream>
#include <vector>

using namespace std;

class Solution {
public:
    // 思路：记录最后一个1的位置，如果1后面剩余的0的数量 大于 1 则最后一个字符就必须是一个1比特字符0
    bool isOneBitCharacter(vector<int> &bits) {
        int len = bits.size();
        if (len <= 1) return true;
        int left_count = 0;
        int index = 0;
        for (int i = 0; i < len; i++) {
            if (bits[i] == 1) {
                i++;
                index = i;
            };
        }
        return index <= len - 2;
    }
};

int main() {
    Solution so;
    vector<int> nums = {1, 1, 1, 0};
    cout << so.isOneBitCharacter(nums);
    return 0;
}